package Array;

import java.util.Arrays;
public class demo1 {
    public static void main(String[] args) {
        //toString:将数组变成字符串
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5]
        System.out.println("--------toString-----------");
        //binarySearch:二分查找法查找元素
        //细节:二分查找的前提: 数组中的元素必须是有序的,数组中的元素必须是升序了
        System.out.println(Arrays.binarySearch(arr, 10));//-6
        System.out.println(Arrays.binarySearch(arr, 2));//1
        System.out.println(Arrays.binarySearch(arr, 20));//-6
        System.out.println("--------binarySearch-----------");
        //copyOf数组
        //参数一: 老数组
        //参数二:新数组的长度
        //方法的底层会根据第二个参数来创建新的数组
        //如果新数组的长度小于老数组的长度,会部分拷贝
        //如果新数组的长度是等于老数组的长度,会完全拷贝
        //如果新数组的长度大于老数组的长度,会补上默认初始值
        // int []arr={1,2,3,4,5};
        int[] newArr = Arrays.copyOf(arr, 10);
        System.out.println(Arrays.toString(newArr));
        System.out.println();//[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
        System.out.println("--------copyOf-----------");
        // int []arr={1,2,3,4,5};
        //copyOfRange:拷贝数组(指定范围)
        //细节报左不包右,包头不报尾
        int []newArr2 = Arrays.copyOfRange(arr, 0,3);
        System.out.println(Arrays.toString(newArr2));
        System.out.println("--------copyOfRange-----------");//[1, 2, 3]
        //fill填充数组
        // int []arr={1,2,3,4,5};
        Arrays .fill(arr,100);
        System.out.println(Arrays.toString(arr));//[100, 100, 100, 100, 100]
        System.out.println("--------fill填充数组-----------");
        //sort:排序,默认情况下是升序
        int []arr2={10,32,3,4,1,7,6,2};
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));//[1, 2, 3, 4, 6, 7, 10, 32]
    }
}
